package com.clei.utils.io;

import java.util.List;

/**
 * 给DataHandler提供的 数据容器
 *
 * @param <T> 泛型
 * @author Y
 * @date 2023-09-18
 **/
public interface DataContainer<T> {

    /**
     * add 放入数据
     * 要支持并发写入
     *
     * @param data 数据
     * @return 添加结果 true成功 false容器满了
     */
    boolean add(T data);

    /**
     * 元素量是否超过容量一半
     *
     * @return true是 false否
     */
    boolean overHalf();

    /**
     * 获取容器所有数据并清空容器
     *
     * @return String list
     */
    List<T> getAndClear();
}
